﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Web.Services;
using System.Data.SqlClient;
using Client.localhost;
using ClassLibrary01;
using System.Windows.Forms.DataVisualization.Charting;

namespace Client
{
    public partial class interMED : Form
    {
        public interMED()
        {
            InitializeComponent();
        }

        private void bindingSource1_CurrentChanged(object sender, EventArgs e)
        {

        }

        private void chart2_Click(object sender, EventArgs e)
        {

        }

        bool valorSelecionado = false; //chave para mudar parametros do qtdConsultaData

        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'intermedDataSet3.qtd_med_espec' table. You can move, or remove it, as needed.
            //this.qtd_med_especTableAdapter.Fill(this.intermedDataSet3.qtd_med_espec);

            // TODO: This line of code loads data into the 'intermedDataSet2.qtd_espec_med' table. You can move, or remove it, as needed.
            //this.qtd_sexo_pacTableAdapter.Fill(this.intermedDataSet1.qtd_sexo_pac);
            //this.qtd_espec_medTableAdapter.Fill(this.intermedDataSet2.qtd_espec_med);
        
        }

        private void button1_Click(object sender, EventArgs e)
        {

            // TODO: This line of code loads data into the 'intermedDataSet1.qtd_sexo_pac' table. You can move, or remove it, as needed.
            //this.qtd_sexo_pacTableAdapter.Fill(this.intermedDataSet1.qtd_sexo_pac);

        }

        private void button1_Click_1(object sender, EventArgs e)
        {
            int numero = Convert.ToInt16(textBox1.Text);
            List<Client.localhost.Medico> lista;
           
            Service1 srv = new Service1();
            try
            {
               // lista = 
                lista = srv.MedicoPorEspecialidade(numero).ToList();
                //.ToList();

                lista.Count();
                //chart6.DataSource = lista;
                
                MessageBox.Show(lista.ElementAt(0).Nome);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            
        }

        private void label1_Click(object sender, EventArgs e)
        {
            
        }

        private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            Service1 srv = new Service1();
            
            List<String> lista = new List<String>();
            cklbCampo.Items.Clear();

            /**
             * verifica se o index selecionado é igual a consulta 
             * e aponta para a view agregadoConsulta
             */
            if (cklbTabela.SelectedItem.ToString() == "consulta")
            {
                lista = srv.carregarCombo("agregadoConsulta").ToList();
                lbQtdInt.Text="" + srv.quantidade("agregadoConsulta");
                
                List<String> listaAno = new List<String>();

                listaAno = srv.retornaAno().ToList();

                cklbAno.Items.Clear();
                //carrega cklbAno com valores do select
                for (int i = 0; i < listaAno.Count; i++)
                {

                    cklbAno.Items.Add(listaAno.ElementAt(i).ToString());

                }
            }
            else
            {
                lista = srv.carregarCombo(cklbTabela.SelectedItem.ToString()).ToList();
                lbQtdInt.Text="" + srv.quantidade(cklbTabela.SelectedItem.ToString());
            }

            //carrega cklbCampo com valores do select
            for (int i = 0; i < lista.Count; i++)
            {

                cklbCampo.Items.Add(lista.ElementAt(i).ToString());

            }
        }

        public string RemoverAcentos(string texto)
        {

            if (string.IsNullOrEmpty(texto))

                return String.Empty;

            else
            {

                byte[] bytes = System.Text.Encoding.GetEncoding("iso-8859-8").GetBytes(texto);

                return System.Text.Encoding.UTF8.GetString(bytes);

            }

        }

        private void button2_Click(object sender, EventArgs e)
        {

            try
            {
                Service1 srv = new Service1();
                //------> TESTE BOTÃO
                List<localhost.Relatorio> lista = new List<localhost.Relatorio>();
                //string tabela = RemoverAcentos(cklbTabela.SelectedItem.ToString().ToLower());
                //string campo = RemoverAcentos(cklbCampo.SelectedItem.ToString().ToLower());
                //string condicao = cklbValor.SelectedItem.ToString();

                                
                lista = srv.consultaSimples(cklbTabela.SelectedItem.ToString(),cklbCampo.SelectedItem.ToString()).ToList();

                
                chartPizza.DataSource = lista;
               
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }

        private void checkedListBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            //instancia objetos
            List<String> lista = new List<string>();
            Service1 srv = new Service1();

            cklbValor.Items.Clear(); //limpa checkedListBox

            /**
             * verifica se o index selecionado é igual a consulta 
             * e aponta para a view agregadoConsulta
             */
            if (cklbTabela.SelectedItem.ToString() == "consulta")
            {
                lista = srv.carregarCombo2("agregadoConsulta", cklbCampo.SelectedItem.ToString()).ToList();
            }
            else
            {
                lista = srv.carregarCombo2(cklbTabela.SelectedItem.ToString(), cklbCampo.SelectedItem.ToString()).ToList();
                List<localhost.Relatorio> listaRelatorio = new List<localhost.Relatorio>();
                //listaRelatorio = srv.
            }

            //carrega cklbValor com valores do select
            for (int i = 0; i < lista.Count; i++)
            {

                cklbValor.Items.Add(lista.ElementAt(i).ToString());

            }


        }

        private void label3_Click(object sender, EventArgs e)
        {

        }

        private void button3_Click(object sender, EventArgs e)
        {
            lbQtdInt.Text = "0";
        }


        private void cklbValor_SelectedIndexChanged(object sender, EventArgs e)
        {
            //atualiza a quantidade de acordo com a seleção do 3o checkedListBox
            Service1 srv = new Service1();

            /**
             * verifica se o index selecionado é igual a consulta 
             * e aponta para a view agregadoConsulta
             */
            if (cklbTabela.SelectedItem.ToString() == "consulta")
            {
                lbQtdInt.Text = "" + srv.quantidadeValor("agregadoConsulta", cklbCampo.SelectedItem.ToString(),cklbValor.SelectedItem.ToString());
            }
            else
            {
                lbQtdInt.Text = "" + srv.quantidadeValor(cklbTabela.SelectedItem.ToString(), cklbCampo.SelectedItem.ToString(),cklbValor.SelectedItem.ToString());
            }
        }


        private void cklbAno_SelectedIndexChanged(object sender, EventArgs e)
        {
            List<String> lista = new List<String>();
            Service1 srv = new Service1();
            cklbMes.Items.Clear(); //limpa checkedListBox
            lista = srv.retornaMes(cklbAno.SelectedItem.ToString()).ToList();

            if (valorSelecionado == true)
            {
                lbQtdInt.Text = srv.qtdConsultaData(cklbCampo.SelectedItem.ToString(), cklbValor.SelectedItem.ToString(), cklbAno.SelectedItem.ToString(), "", "").ToString();//filtra lbQtdInt por ano
            }
            else
            {
                lbQtdInt.Text = srv.qtdConsultaData("","",cklbAno.SelectedItem.ToString(), "", "").ToString();
            }
            //carrega cklbMes com valores do select
            for (int i = 0; i < lista.Count; i++)
            {

                cklbMes.Items.Add(lista.ElementAt(i).ToString());

            }

        }

        private void cklbMes_SelectedIndexChanged(object sender, EventArgs e)
        {

            List<String> lista = new List<String>();
            Service1 srv = new Service1();
            cklbDia.Items.Clear(); //limpa checkedListBox
            lista = srv.retornaDia(cklbAno.SelectedItem.ToString(), cklbMes.SelectedItem.ToString()).ToList();


            if (valorSelecionado == true)
            {
                lbQtdInt.Text = srv.qtdConsultaData(cklbCampo.SelectedItem.ToString(), cklbValor.SelectedItem.ToString(), cklbAno.SelectedItem.ToString(), cklbMes.SelectedItem.ToString(), "").ToString(); //filtra lbQtdInt por ano,mes
            }
            else
            {
                lbQtdInt.Text = srv.qtdConsultaData("", "", cklbAno.SelectedItem.ToString(), cklbMes.SelectedItem.ToString(), "").ToString();
            }

            //carrega cklbDia com valores do select
            for (int i = 0; i < lista.Count; i++)
            {

                cklbDia.Items.Add(lista.ElementAt(i).ToString());

            }

        }

        private void cklbDia_SelectedIndexChanged(object sender, EventArgs e)
        {
            Service1 srv = new Service1();

            if (valorSelecionado == true)
            {
                lbQtdInt.Text = srv.qtdConsultaData(cklbCampo.SelectedItem.ToString(), cklbValor.SelectedItem.ToString(), cklbAno.SelectedItem.ToString(), cklbMes.SelectedItem.ToString(), cklbDia.SelectedItem.ToString()).ToString(); //filtra lbQtdInt por ano,mes,dia
            }
            else
            {
                lbQtdInt.Text = srv.qtdConsultaData("", "", cklbAno.SelectedItem.ToString(), cklbMes.SelectedItem.ToString(), cklbDia.SelectedItem.ToString()).ToString(); 
            }
        }

        private void cklbValor_Click(object sender, EventArgs e)
        {
            valorSelecionado = true;

        }

        private void lbTitulo_Click(object sender, EventArgs e)
        {

        }

        private void button4_Click(object sender, EventArgs e)
        {
            try
            {
                Service1 srv = new Service1();
                //------> TESTE BOTÃO
                List<localhost.Relatorio> lista = new List<localhost.Relatorio>();
                //string tabela = RemoverAcentos(cklbTabela.SelectedItem.ToString().ToLower());
                //string campo = RemoverAcentos(cklbCampo.SelectedItem.ToString().ToLower());
                //string condicao = cklbValor.SelectedItem.ToString();
                this.chartPizza.Series.Clear();
                this.chartPizza.Titles.Clear();
               


                if (cklbTabela.SelectedItems.Count > 1)
                {
                    MessageBox.Show("Escolher apenas um");
                    return;
                }

                lista = srv.consultaSimples(cklbTabela.SelectedItem.ToString(), cklbCampo.SelectedItem.ToString()).ToList();
                string[] dados = new string[lista.Count];

                for (int i = 0; i < lista.Count; i++ ) {

                    dados[i] = lista.ElementAt(i).Descricao;

                }

                this.chartPizza.Titles.Add("Relatório");

                for (int i = 0; i < dados.Length; i++ ) {

                    Series series = this.chart1.Series.Add(dados[i]);
                    series.Points.Add(lista.ElementAt(i).Quantitativo);
                
                }
                //chartPizza.DataSource = lista;

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }


    }
}
